package com.intelligentcar.springboot.mapper;

import com.intelligentcar.springboot.bean.Menu;
import com.intelligentcar.springboot.bean.Role;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import org.springframework.validation.annotation.ValidationAnnotationUtils;

import java.util.List;
import java.util.Map;

@Repository
public interface MenuMapper {
    //搜索所有角色
    public List<Role> selectAllRole();
    //搜索该角色的已分配权限
    public List<Menu> selectAllotMenu(Menu menu);
    //搜索该角色的未分配权限
    public List<Menu> selectAllPower();
    //根据菜单名称，搜索菜单ID
    public Menu selectMenuId(Menu menu);
    //修改权限状态(true为已分配，false为未分配)
    public int updatePower(@Param(value = "powerState") String powerState,
                           @Param(value = "roleId") int roleId,
                           @Param(value = "powerId") int powerId);
    //菜单列表
    public List<Menu> menuTable(Menu menu);
    //查询总页数
    public int selectPageCount();
    //修改菜单信息
    public int updateMenu(Menu menu);
    //修改菜单状态(启用、禁用)
    public int updateMenuState(Menu menu);
    //插入菜单信息
    public int insertMenu(Menu menu);
    //初始化角色所有权限（将所有权限都赋予这个角色。状态为false，表示未分配权限）
    public int insertRolePower(List<Menu> menus);
    //查询后的菜单列表
    public List<Menu> selectMenu(Menu menu);
    //查询后的总页数
    public int selectedPageCount(Menu menu);
    //父级菜单的下拉框数据
    public List<Menu> allParentMenu(Menu menu);
    //动态路由数据
    public List<Menu> routerData();
}
